package com.org.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

@Data
public class TCwReceiptPlanDto extends Page{

    private Long id;

    /**
     * 收款单号
     */
    private String receiptOrderNo;

    /**
     * 商户ID
     */
    private Long businessId;

    /**
     * 合同ID
     */
    private Long contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同类型	,"1：收房合同，
     2：出房合同"
     */
    private Integer contractType;

    /**
     * 解约协议ID（解约时才有，收房是收房解约协议，出房是出房解约协议）
     */
    private Long tTerminationId;

    /**
     * 楼盘ID
     */
    private Long premiseId;

    /**
     * 小区(使用楼盘名)
     */
    private String premiseName;

    /**
     * 房源ID
     */
    private String roomId;

    /**
     * 房源编号
     */
    private String roomCode;

    /**
     * 承租房间(使用房源名称)
     */
    private String roomName;

    /**
     * 业主ID
     */
    private Long ownerId;

    /**
     * 业主姓名
     */
    private String ownerName;

    /**
     * 租客ID
     */
    private Long tenantId;

    /**
     * 租客姓名(面向业主收款时，为空)
     */
    private String tenantName;

    /**
     * 收款类型	,1:房租收款 2：租务收款 3：解约结算收款 4：续约结算收款
     */
    private Integer receiptType;

    /**
     * 收款状态	1:未收款 2：已收款 3：已中止  4：已冻结（未收款的时候，才会变成已冻结，所以恢复冻结状态的时候，是恢复成未收款状态）
     */
    private Integer skStatus;

    /**
     * 账单类型（金融属性）,"1：分期变更
     2：租约保理变更
     3：退租变更
     4：普通账单(正常房租租务计划)"	参照枚举CollectionPlanZdType
     */
    private Integer billType;

    /**
     * 款项（费用类型）	,1:水费 2：电费，3：煤/燃气费，80：租金，81：押金，90：解约结算，99:其它
     */
    private Integer itemType;

    /**
     * 其它款项	,款项为其它的时候，输入
     */
    private String otherItemName;

    /**
     * 支付金额（应收金额，房租时=不含税净价+税费）
     */
    private BigDecimal paymentAmount;

    /**
     * 实收金额
     */
    private BigDecimal realPaymentAmount;

    /**
     * 选择账期（跟随的第几期房租对应的收款计划ID）,跟随一起付款的时候，应付日期选择设置为同一天
     */
    private Long withReceiptPlanId;

    /**
     * 账期开始日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date paymentDaysBegin;

    /**
     * 账期截止日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date paymentDaysEnd;

    /**
     * 预定收款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date collectionDate;

    /**
     * 实际收款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date realCollectionDate;

    /**
     * 第几期（房租收款的时候）
     */
    private Integer receiptNumber;

    /**
     * 线下支付方式（直接录入已收款的收款计划时选择的）	,1:快捷同，2：支付宝，3：微信，4：现金，5：银行卡转账，6：POS机刷卡，99：其它
     */
    private Integer payMethod;

    /**
     * 其它支付方式	,支付方式为其它的时候，输入
     */
    private String otherPayMethod;

    /**
     * 支付流水号（线下直接录入收款的时候输入，不是线上的流水号）
     */
    private String payFlowNo;

    /**
     * 账期房租金额（净价，不含税）
     */
    private BigDecimal rentalPrice;

    /**
     * 税费
     */
    private BigDecimal tax;

    /**
     * 操作人
     */
    private String operationUser;

    /**
     * 备注
     */
    private String remark;

    /**
     * 预留字段1
     */
    private BigDecimal reserve1;

    /**
     * 预留字段2
     */
    private Integer reserve2;

    /**
     * 预留字段3
     */
    private String reserve3;

    /**
     * 预留字段4
     */
    private String reserve4;

    /**
     * 预留字段5
     */
    private String reserve5;

    /**
     * 删除标识	,0:未删除，1：删除
     */
    private Boolean delFlg;

    /**
     * 创建用户ID
     */
    private Long createUserid;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createTime;

    /**
     * 更新用户ID
     */
    private Long updateUserid;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date updateTime;

    private String[] ysrq;//应收日期
    private String ysstart;
    private String ysend;
    private String[] ssrq;//实收日期
    private String ssstart;
    private String ssend;
}
